package com.caregiver.watch.business.care.service;

import com.caregiver.watch.business.care.model.po.UserPackageOrder;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description: 用户套餐服务
 * @Author 疆戟
 * @Date 2025/10/19 16:32
 * @Version 1.0
 */
public interface UserPackageOrderService {

    /**
     * 查询有效的订单
     * @param userId
     * @return
     */
    List<UserPackageOrder> queryEffectiveOrders(Long userId);


    /**
     * 查询生效中的订单
     * @param userId
     * @return
     */
    UserPackageOrder queryEffectiveOrder(Long userId);


    /**
     * 保存订单
     * @param order
     * @return
     */
    boolean saveOrder(UserPackageOrder order);

    /**
     * 根据订单号查询订单
     * @param orderNo
     * @return
     */
    UserPackageOrder queryPendingPaymentOrder(String orderNo);

    /**
     * 更新订单支付信息
     * @param id
     * @param payNo
     * @param payAmount 支付金额
     * @param payTime 支付时间
     */
    Boolean updatePaymentInfo(Long id, String payNo, BigDecimal payAmount, LocalDateTime payTime);

    /**
     * 扣减用户预警次数
     * @param userId
     * @param count 扣减次数
     * @return
     */
    Boolean deductWarningCount(Long userId, Integer count);
}
